/*
 * NESController.h
 *
 *  Created on: Oct 23, 2012
 *      Author: nam20485
 */

#ifndef NESCONTROLLER_H_
#define NESCONTROLLER_H_

#include "Controller.h"

class NESController: public Controller {
public:
//	enum NES_BUTTON
//	{
//		A,
//		B,
//		UP,
//		DOWN,
//		LEFT,
//		RIGHT,
//		SELECT,
//		START,
//		NUM_BUTTONS
//	};

	NESController(int dataPin, int strobePin, int clockPin);
	virtual ~NESController();

	virtual bool getButtonState(BUTTON button) const;
	virtual const int getButtonState() const;

protected:
	const int DATA_PIN;
	const int STROBE_PIN;
	const int CLOCK_PIN;

	bool readNextBit() const;

	virtual void initialize();
};

#endif /* NESCONTROLLER_H_ */
